

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<script type="text/javascript" src="helpman_topicinit.js"></script>

<title>Include State Transitions [Enterprise Architect User Guide]</title>

<meta name="keywords" content="Enterprise Architect, Sparx Systems, UML, State Transitions,State Transitions Recorded In Debugger, Overview,Sequence Diagram,Sequence Diagram Show Transitions In State, Overview,Debugger,Debugger Capture State Transitions, Options Tab,Capture State Transitions,Capture State Transitions Debugger Options Tab">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta http-equiv="Content-Style-Type" content="text/css" />

<link type="text/css" href="default.css" rel="stylesheet" />
<style type="text/css">
  A, A:Visited
  {
    color: #00F;
  }

  A:Active, A:Hover
  {
    color: #F00;
  }

  OL
  {
    margin: 5px 0 5px 48px;
  }

  UL
  {
    margin-bottom: 3px;
    margin-top: 0;
  }

  #nsr
  {
    background-color: #D4DFFF;
  }

  #nsr A
  {
    text-decoration: none;
  }

  #mainbody
  {
    padding: 8px;
  }

  .p_BodyText
  {
    padding: 5px 0;
  }
</style>



<style type="text/css" media="screen">
  BODY
  {
    background-color: #FFFFFF;
  }

  #nsr
  {
    padding: 6px 6px 0 6px;
    border-bottom: none;
    vertical-align: top;
    z-index: 2;
    visibility: visible;
    left: 0;
    top: 0;
    position: absolute;
  }

  #mainbody
  {
    left: 0;
    top: 0;
    margin: 0;
    position: absolute;
    padding: 10px;
    overflow: auto;
    height: 100%;
    z-index: 1;
    background-repeat: no-repeat;
    background-position: bottom right;
    background-attachment: fixed;
  }
</style>

<style type="text/css" media="print">
  #nsr
  {
    visibility: none;
  }

  #mainbody
  {
    overflow: visible;
  }
</style>
<script type="text/javascript" language="JavaScript" src="nonscroll.js"></script>

</head>
<body scroll="no">

<div id="page">



        <div id="content">
          <div id="content-inner">
          



  
          <div id="nsr">
            <table border="0" cellspacing="0" cellpadding="4" width="100%">
              <tr valign="top">
                <td align="left">
  


                  <p class="p_Heading1"><span class="f_Heading1">Include State Transitions</span></p>



  
                </td>
                <td align="right">
                  <a href="introduction.htm" onmouseover="document.images.main.src='button_main_h.gif'" onmouseout="document.images.main.src='button_main.gif'">
                    <img name="main" src="button_main.gif" border=0 alt="Return to Introduction">
                  </a>&nbsp;
    
                  <a href="generate_the_diagram.htm" onmouseover="document.images.prev.src='button_prev_h.gif'" onmouseout="document.images.prev.src='button_prev.gif'">
                    <img name=prev src="button_prev.gif" border=0 alt="Previous page" />
                  </a>&nbsp;
    
    
    
                  <a href="enable_capture_of_state_transa.htm" onmouseover="document.images.next.src='button_next_h.gif'" onmouseout="document.images.next.src='button_next.gif'">
                    <img name=next src="button_next.gif" border=0 alt="Next page" />
                  </a>
    
    
                </td>
              </tr>
            </table>
          </div>
          <div id="mainbody">
  


                <p class="p_SubHeadingL1"><span class="f_SubHeadingL1">Overview</span></p>
<p class="p_BodyText"><span class="f_BodyText">You can generate Sequence diagrams that show transitions in state as a program executes. The illustration below shows a simple project that has, in its State Machine, a number of States that correspond to color values of the </span><span class="f_BodyText" style="font-style: italic;">Painter</span><span class="f_BodyText"> Class member variable </span><span class="f_BodyText" style="font-style: italic;">Painter.1</span><span class="f_BodyText">.</span></p>
<p class="p_TextIndentedL2"><img src="state%20sequence%20diagram.png" width="610" height="660" border="0" alt="State Sequence Diagram"><br>
<span class="f_TextIndentedL2" style="font-style: italic;">&nbsp;</span><br>
<span class="f_TextIndentedL2" style="font-style: italic;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Example Sequence Diagram with State Transitions For Class Painter</span></p>
<p class="p_BodyText"><span class="f_BodyText">Showing State transitions on your debug-generated Sequence diagrams is optional; you set an option in the package script associated with the Class for which you intend to record States.</span></p>
<div style="text-align: left; text-indent: 0px; padding: 0px 0px 0px 0px; margin: 5px 0px 5px 13px;"><table cellspacing="0" cellpadding="2" border="0" style="border: none; border-spacing:0px;">
<tr style="text-align:left;vertical-align:bottom;">
<td valign="bottom" width="952" bgcolor="#efeff7" style="width:952px; background-color:#efeff7;"><p class="p_TiporNote" style="border-top: none; border-right: none; border-left: none;"><span class="f_TiporNote">Note:</span></p>
</td>
</tr>
<tr style="text-align:left;">
<td width="952" bgcolor="#f7f7ff" style="width:952px; background-color:#f7f7ff;"><p class="p_TiporNoteText"><span class="f_TiporNoteText">If you do not have a package script for the Class or package you must create one. Sequence diagrams can only be generated for a package that has been configured for debug.</span></p>
</td>
</tr>
</table>
</div>
<p class="p_BodyText"><span class="f_BodyText">Next, you create a </span><span class="f_BodyText" style="font-style: italic;">State Machine</span><span class="f_BodyText"> under the Class. On the State Machine you create the </span><span class="f_BodyText" style="font-style: italic;">State</span><span class="f_BodyText"> elements that correspond to any states to be captured for your Class. The debugger evaluates your States by checking </span><span class="f_BodyText" style="font-style: italic;">constraints</span><span class="f_BodyText"> on the States you create. The States on this diagram are then used by the debugger and State transitions are incorporated into the diagram. These procedures are explained in the subsequent sections, with reference to the following figure:</span></p>
<p class="p_TextIndentedL2"><img src="projectview%20-%20states.png" width="276" height="420" border="0" alt="ProjectView - States"><br>
<span class="f_TextIndentedL2" style="font-style: italic;">&nbsp;</span><br>
<span class="f_TextIndentedL2" style="font-style: italic;"> &nbsp; </span><span class="f_TextIndentedL2"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span class="f_TextIndentedL2" style="font-style: italic;">Project Browser with State Machines For Class Painter</span></p>
<p class="p_BodyText"><span class="f_BodyText">This figure shows the Class </span><span class="f_BodyText" style="font-style: italic;">Painter</span><span class="f_BodyText"> with a State Machine called </span><span class="f_BodyText" style="font-style: italic;">Compound</span><span class="f_BodyText">. It has a child diagram also called </span><span class="f_BodyText" style="font-style: italic;">Compound,</span><span class="f_BodyText"> on which the States {</span><span class="f_BodyText" style="font-style: italic;">Grey</span><span class="f_BodyText">,</span><span class="f_BodyText" style="font-style: italic;">Lime</span><span class="f_BodyText">,</span><span class="f_BodyText" style="font-style: italic;">Olive</span><span class="f_BodyText">...} are placed.</span></p>




            </div>
          </div>
        </div>



</div>


</body>
</html>
